"""

@Time: 2021/1/22 18:33
@Author:
@File: app.py
"""
from fastapi import FastAPI
import pyfuseki

from controller import api_router
from config import fuseki_conf
import exception_handlers

# 生成的API文档中的tag元信息
tags_metadata = [
    {
        'name': 'test',
        'description': '用于测试程序的接口'
    },
    {
        'name': 'login',
        'description': '登录使用的接口，包括获取 `token` 和用户登出注销 `token`',
    },
    {
        'name': 'user',
        'description': '用户信息的接口'
    },
    {
        'name': 'search',
        'description': '故障检索的接口'
    },
    {
        'name': 'mark',
        'description': '故障标记的接口'
    },
    {
        'name': 'ml',
        'description': '样本训练的接口'
    }
]


main_app = FastAPI(
    title='Faulty Expert System',
    description='故障检索专家系统',
    version='0.0.1',
    openapi_tags=tags_metadata
)

# include api router
main_app.include_router(api_router, prefix='/api')

# 为 app 注册异常处理器
exception_handlers.register_exception_handlers(main_app)

# 为 pyfuseki 注册公有前缀
pyfuseki.register.register_common_prefix(fuseki_conf.COMMON_PREFIX)



from models.dto.restful_model import RESTfulModel


@main_app.get("/test_connection",
              summary='连接测试',
              tags=['test'])
def read_root():
    return RESTfulModel(code=0, data='connection success')

